package com.bawei.module_repair.adapter

import android.graphics.Rect
import android.view.View
import androidx.recyclerview.widget.GridLayoutManager
import androidx.recyclerview.widget.RecyclerView

class GridSpaceItemDecoration(
    private val horizontalSpacing: Int,  // 水平间距（左右）
    private val verticalSpacing: Int     // 垂直间距（上下）
) : RecyclerView.ItemDecoration() {

    override fun getItemOffsets(
        outRect: Rect,
        view: View,
        parent: RecyclerView,
        state: RecyclerView.State
    ) {
        super.getItemOffsets(outRect, view, parent, state)

        // 获取当前子项的位置
        val position = parent.getChildAdapterPosition(view)
        // 获取总列数（从 LayoutManager 中获取）
        val spanCount = (parent.layoutManager as? GridLayoutManager)?.spanCount ?: 1

        // 计算当前子项所在的列索引（从0开始）
        val column = position % spanCount

        // 水平间距：左右两侧添加间距（首尾列可能不需要左侧/右侧间距，可选）
        outRect.left = horizontalSpacing - column * (horizontalSpacing / spanCount.toFloat()).toInt()
        outRect.right = (column + 1) * (horizontalSpacing / spanCount.toFloat()).toInt()

        // 垂直间距：上下两侧添加间距（首尾行可能不需要上/下间距，可选）
        outRect.top = verticalSpacing
        outRect.bottom = verticalSpacing
    }
}